package managedbeans;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import entidades.Producto;
import prodejb.ProdEJBRemote;

@ManagedBean(name = "MBTienda")
@SessionScoped
public class MBProducto implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @EJB(name = "PEJB", mappedName = "PEJB")
    ProdEJBRemote pejb;

    private String id;
    private String nombre;
    private String descripcion;
    private int stock;
    private int precio;

    private Producto producto;
    private List<Producto> listProd;

    @PostConstruct
    public void init() {
        producto = new Producto();
        listProd = pejb.getList();
    }

    /**
     * Constructor default.
     */
    public MBProducto() {

    }

    /**
     * Actualiza los cambios al stock, luego de una compra.
     */
    public void actualizarBD() {
        for (Producto l : listProd) {
            pejb.modProd(l);
        }
    }

    /**
     * @return the pejb
     */
    public ProdEJBRemote getPejb() {
        return pejb;
    }

    /**
     * @param pejb the pejb to set
     */
    public void setPejb(ProdEJBRemote pejb) {
        this.pejb = pejb;
    }

    /**
     * @return the id
     */
    public String getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the descripcion
     */
    public String getDescripcion() {
        return descripcion;
    }

    /**
     * @param descripcion the descripcion to set
     */
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    /**
     * @return the stock
     */
    public int getStock() {
        return stock;
    }

    /**
     * @param stock the stock to set
     */
    public void setStock(int stock) {
        this.stock = stock;
    }

    /**
     * @return the precio
     */
    public int getPrecio() {
        return precio;
    }

    /**
     * @param precio the precio to set
     */
    public void setPrecio(int precio) {
        this.precio = precio;
    }

    /**
     * @return the producto
     */
    public Producto getProducto() {
        return producto;
    }

    /**
     * @param producto the producto to set
     */
    public void setProducto(Producto producto) {
        this.producto = producto;
    }

    /**
     * @return the listProd
     */
    public List<Producto> getListProd() {
        return listProd;
    }

    /**
     * @param listProd the listProd to set
     */
    public void setListProd(List<Producto> listProd) {
        this.listProd = listProd;
    }

    /**
     * @return the serialversionuid
     */
    public static long getSerialversionuid() {
        return serialVersionUID;
    }

}
